package utils;

import java.util.Arrays;

/**
 * Created by aceyin on 15/7/14.
 */
public class MaskUtil {

    /**
     * 将给定的str的从 start(包括start位)开始 到 end(不包括end位)结束 的字符串替换成*号
     *
     * @param start - 开始替换的位置，该位置的字符会被替换
     * @param end   - 结束位置，该位置的字符不会被替换
     * @return
     */
    public static String mask(String str, int start, int end) {
        if (str == null) {
            return "";
        }
        int length = str.length();
        int from = start - 1;

        if (start < 1 || end < 1 || end < start || length < from) {
            return str;
        }

        char[] chars = str.toCharArray();


        if (start == end) {
            Arrays.fill(chars, from, start, '*');
            return String.valueOf(chars);
        }

        // fix Arrays.fill(arr,1,1) 不会做任何修改的问题
        int to = length < end ? length : end - 1;

        Arrays.fill(chars, from, to, '*');
        return String.valueOf(chars);
    }
}
